home *** CD-ROM | disk | FTP | other *** search
- ****************************************************************************
- Utility-Listing: MENUE.LST für GFABasic 3.5E
- für ATARI-TT 030 mit Großbildschirm TTM194 (o.ä.)
- ****************************************************************************
- Zweck:
- ------
- Leider kann das aktuelle GFABasic 3.5E Menüleisten auf dem ATARI-TT mit
- seinen 160 Byte Bildschirmbreite nicht richtig aufbauen. Die Einträge werden
- nur mit sehr kleiner Schrift, eben der Hälfe der Normalschrift, aufgebaut.
- Ein Ausweg sind nur die externen RSC-Files. Abgesehen davon, daß man dann
- doch wieder eine 2.Datei braucht, ist die Benutzung solcher RSC-Files doch
- ein ziemlicher Umstand - v.a., wenn man die schnelle, einfache Benutzung der
- GFABasic-eigenen MENU-Befehle gewohnt ist!
- Aus diesem Grund wurde MENUE.LST geschrieben, das eine Menüsteuerung 'von
- Hand' ermöglicht.
-
- Leistungen:
- -----------
- MENUE.LST baut alle Menüeinträge in der normalen Schriftgröße auf - bis
- auf den DESK-Eintrag. Die Menüeinträge können dann in gewohnter Manier durch
- überfahren mit der Maus geöffnet und angewählt werden. Dabei werden die
- aktivierten Einträge invers dargestellt.
- Als Besonderheit kommt dazu, daß die Einträge auch über einen Buchstaben
- gewählt werden können. Dieser Wahlbuchstabe wird mit einem feinen
- Unterstrich bezeichnet.
- Die Menüsteuerung kann verhältnismäßig leicht mit MERGE zum Hauptprogramm
- hinzugefügt werden. Nur die Menütitel müssen angepasst werden.
-
- Einschränkung:
- --------------
- Der DESK-Eintrag kann NUR mit der Maus aktiviert werden. Er muß auch mit
- einem ordentlichen Mausklick wieder zugeklappt werden. Da der DESK-Eintrag
- vom normalen GFABasic ON MENU verwaltet wird, erscheinen in diesem alle
- Einträge wieder in der stark verkleinerten Form und die Behandlung dieses
- Eintrags ist völlig getrennt von den anderen Hauptmenüeinträgen. Freilich
- kann dies dazu führen, daß GLEICHZEITIG das DESK-Untermenü UND ein anderes
- Menü aufgeklappt werden - aber nur, wenn das DESK-Menü nicht ordentlich mit
- Mausklick beendet wurde.
-
- Einbau in eigene Programme:
- ---------------------------
- In der PROCEDURE m_init findet sich die Angabe 'Merge-Punkt'. Gegenüber
- den üblichen DATA-Zeilen für ein Menü hat sich das Bild doch etwas gewandelt:
- Nach jedem Eintrag folgt eine Zahl, die den CASE-Selector bezeichnet. Eine
- '0' bedeutet, daß die Anwahl dieses Eintrags keinerlei Aktion zur Folge hat.
- Wenn Sie einem Titel ' Laden' z.B. die Nummer 112 geben, dann können Sie
- später im Listing schreiben:
- CASE 112
- laden
- Diese Funktionsnummern sind frei wählbar. Sie müssen nicht lückenlos sein
- oder könnten gar negativ sein! Alles, was mit CASE machbar ist, geht mit
- diesen Funktionsnummern. Insbesondere bei Menü-Erweiterungen ist das
- nützlich. Sie behalten die alten Menünummern bei und vergeben für die neuen,
- dazwischen 'geklemmten' Menü-Einträge einfach neue Nummern. In den DATA-
- Zeilen kann dann ein heilloses Wirrwar von Nummern entstehen. Das macht
- nichts! Sie könnten aber sich selber ein wenig Ordnung gönnen, wenn Sie dem
- 1.Hauptmenüeintrag die Nummern 1-9, dem 2.Eintrag die Nummern 10-99, dem 3.
- die Zahlen 100-999 reservieren - wie Sie wollen.
- Ansonsten ähneln diese DATA-Zeilen sehr den üblichen DATA-Zeilen für MENU.
- Beginnt ein Eintrag mit '-', wird er auch in der üblichen 'erleichterten'
- Schrift dargestellt und er ist nicht wählbar.
- Hat ein Eintrag einen Großbuchstaben, wird dieser dann auch mit einer
- dünnen Linie unterstrichen dargestellt und er dient zur Tastatursteuerung.
- Freilich hat diese Sache einen Haken: Kommt ein Buchstabe 2x vor, ist immer
- nur der 1.Eintrag mit diesem Buchstaben erreichbar! Aber Sie können sicher
- das Listing ändern und ein neues Feld für die Commando-Buchstaben einführen.
- Die DATA-Zeilen wären dann nach jeder Ziffer mit einem Buchstaben zu
- versehen, z.B. 'DATA Datei,0,D, Laden,112,L,..' Das wäre ein Vorschlag von
- mir.
- Wichtig ist der Leerraum vor einem Titel. Sie könnten noch ein weiteres
- Feld einführen, daß bestimmt, ob ein Eintrag 'abgehakt' werden muß oder
- nicht. Das überlasse ich Ihnen. Wenn Sie Lust haben, können Sie ja auch noch
- Untermenüs in den aufgeklappten Menütitel einbauen oder geteilte Menüs wie
- im Programm SIGNUM2!...
- Auf keinen Fall dürfen die Leerstrings mit "" am Ende jeder Zeile UND
- ganz am ENDE der DATA-Zeilen vergessen werden!
- MENUE.LST 'scannt' in einem ersten Durchgang Ihre DATA-Zeilen, nimmt dann
- die Dimensionierung vor und trägt in einem 2.Durchgang Ihre Strings und
- Befehlsnummern ein.
- Alle von MENUE.LST GLOBAL verwendeten Variablen beginnen mit einem 'm.',
- damit Sie in keine Namenskonflikte kommen.
- Haben Sie die DATA-Zeilen glücklich angepasst, werden Sie die 'PROCEDURE
- ausfuehren' anpassen müssen. Die 'PROCEDURE main' sollten Sie lieber nicht
- anfassen! 'ausfuehren' ist eigentlich nur eine CASE-Liste.
- Die 'PROCEDURE direkt_befehl' soll auf Tasten reagieren, die NICHT in der
- Menüleiste stehen und direkte Aktionen über die Tastatur OHNE Aufklappen
- eines Menüs auslösen sollen.
- MENUE.LST ist ein Auszug aus meinem PD-Programm FNT_ED.GFA. Sie können
- lustig ändern und neue Features einführen.
-
- Pfr.S.Just, Kirchweg 5, 6936 Haag, Tel.06262/6369
-
-